// 安装 pnpm i @amap/amap-jsapi-loader
import AMapLoader from "@amap/amap-jsapi-loader";

// 设置安全密钥
window._AMapSecurityConfig = {
    securityJsCode: '85fc0623719ef09cab617d04bcfe4842',
}

export const AMap = await AMapLoader.load({
    "key": "ec2af04e12fdd316ea6aab110438c23f",
    "version": "2.0",   // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
    // 需要使用的的插件列表，如比例尺'AMap.Scale'等
    "plugins": ["AMap.DistrictSearch"],
});

/**
 * 获取中国所有身份下的所有区县信息列表
 */
export const getChineseAllDistinguish = () => {
    // 行政区划查询配置对象
    const opts = {
        // 返回下一级行政区，到区县级别
        subdistrict: 3,
        //最后一级返回街道信息
        showbiz: true
    };
    // 行政区划查询对象
    // 注意：需要使用插件同步下发功能才能这样直接使用
    const district = new AMap.DistrictSearch(opts);
    return new Promise((resolve, reject)=>{
        // 获取中国所有省份下的所有区县信息列表
        district.search('中国', (status, result) => {
            if (status === 'complete') {
                return  resolve(result.districtList[0].districtList)
            }
        });
    })
}

/**
 * 获取行政区中心坐标，如果查询省下的市，直接写 XX市，
 * 区一样，直接 XX区，无需前面的省市
 *
 * @param districtName
 */
export const getDistrictCenterCoordinate = (districtName) => {
    // 行政区划查询配置对象
    const opts = {
        // 不返回下一级行政区
        subdistrict: 0,
        //最后一级返回街道信息
        showbiz: true
    };
    // 行政区划查询对象
    // 注意：需要使用插件同步下发功能才能这样直接使用
    const district = new AMap.DistrictSearch(opts);
    return new Promise((resolve, reject)=>{
        // 获取中国所有省份下的所有区县信息列表
        district.search(districtName, (status, result) => {
            if (status === 'complete') {
                return resolve([
                    result.districtList[0].center.lng,
                    result.districtList[0].center.lat,
                ])
            }
        });
    })
}